<?php
    require_once 'UserAuthView.php';
    require_once 'Service/UserAuth.php';
    require_once 'UserContentView.php';

/**
 * Im UserView wird der Userbereich dargestellt. Dieser umfasst das Anmelde
 * Formular so wie die verschiedenen Member Contents.
 *
 * @author Andy Nick
 */
class UserView {
    private $isAuth = false;
    private $user, $password;
    private $userContentView;

    /**
     * Diese Methode wird aufgerufen, wenn der Memberbereich angezeigt werden
     * soll.
     * Wenn noch nicht authentifiziert wurde, wird die Login Maske
     * angezeigt.
     * Wenn schon angemeldet wurde, wird das Menu angezeigt.
     * Wenn eine Funktion gewählt wurde, wird der View dieser Funktion angezeigt.
     * Wenn abgemeldet wude wird ein Logout durchgeführt und eine Nachricht
     * angezeigt.
     */
    public function Show(){
        $this->userContentView = new UserContentView();
        $userAuth = new UserAuth();
        // Ist der User noch nicht angemeldet
        if(!$this->isAuth){
            // Wenn Der User mitgegeben wurde und er nicht leer ist
            if((isset($_POST['User']) AND !empty($_POST['User']))){
                
                // Konnte User Authentifiziert werden, wird das Menu angezeigt
                if($userAuth->AuthentifyUser($_POST['User'], $_POST['Password'])){
                    $this->user = $_POST['User'];
                    $this->password = $_POST['Password'];
                    $this->showContent();
                    $this->isAuth = true; 
                }
                // Wenn User nicht Authentifiziert, wird Fehlermeldung
                // angezeigt und Login Form
                else{
                    echo "<p>Sie konnten nicht angemeldet werden<br>";
                    echo "&Uuml;berpr&uuml;fen Sie bitte User und Passwort.</p>";
                    $userAuthView =  new UserAuthView();
                    $userAuthView->ShowAuthForm();
                    echo "<a href = '../index.php'>zurück zur Stratseite</a>";
                }
            }
            // Wenn noch kein User authentifiziert wurde, wird das Login Formular angezeigt
            else{
                $userAuthView =  new UserAuthView();
                $userAuthView->ShowAuthForm();
            }
        }
        // Wenn abgemeldet wurde
        elseif(isset($_REQUEST['logout'])){
            $userAuth->Logout();
            echo '<p>Sie wurden erfolgreich abgemeldet</p>';
            echo "<a href = '../index.php'>zurück zur Stratseite</a>";
        }
        // Wenn bereits Authentifiziert
        else{
             $this->showContent();
        }             
    }

    /**
     * Diese Methdoe zeigt den View einer gewählten Funktion an
     */
    private function showContent(){
        $this->userContentView->ShowMenu($this->user);
        if(isset($_REQUEST['contentKey'])){
            $this->userContentView->ShowContent();
        }
    }
}
   

?>
